iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 17
1

中秋連假真可怕,今天沒時間拍影片,改使用文字筆記的方式結束這一天><

使用者從到後端的資料,可能不符合我們要求的格式,例如商品名稱不能空,商品價格不能小於0。

你可能會想用if()來判斷,不過ASP.NET Core有提供資料驗證的功能,是以Attribute的方式來使用,放在欲驗證欄位的前方即可會對該欄位進行驗證。

這邊列出幾個ASP.NET Core內建的資料驗證Attribute

[Compare]:驗證模型中的兩個屬性是否相符。
[EmailAddress]:驗證是否符合電子信箱格式。
[Phone]:驗證是否符合電話號碼格式。
[Range]:驗證值是否落在指定的範圍內。
[RegularExpression]:驗證值是否符合指定的正則運算式。
[Required]:驗證欄位為必填欄位。

詳細內容可以看文件
內建屬性
System.ComponentModel.DataAnnotations 命名空間

在Action中,可以使用此方式來檢查是否完全符合驗證,若符合再執行

if (ModelState.IsValid)
{
    //符合則執行...
}

而在View中,如果有載入_ValidationScriptsPartial.cshtml的話,可以使用此方式顯示驗證失敗的錯誤訊息

<div asp-validation-summary="ModelOnly" class="text-danger"></div>
<span asp-validation-for="Name" class="text-danger"></span>

載入方式

@section Scripts {
    @{await Html.RenderPartialAsync("_ValidationScriptsPartial");}
}

用戶端驗證
驗證標籤協助程式


    [ModelMetadataType(typeof(ProductMetadataType))]
    public partial class Product
    {       
    }

    public class ProductMetadataType
    {
        [Display(Name = "商品名稱")]
        public string Name { get; set; }
        [Display(Name = "價格")]
        public decimal Price { get; set; }
    }
    ```

上一篇
[影片]第16天:使用EF Core來做資料的新增、刪除、修改等CRUD
下一篇
[影片]第18天:完成資料驗證功能
系列文
後端或是ASP.NET Core的學習筆記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言